//
//  StarUserModel.swift
//  weibo1
//
//  Created by 代亚洲 on 16/4/21.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

class StarUserModel: NSObject {
    
    // 如果在此使用 Int的话，在iPhone 5（32位系统）的手机上面，会将Int当成 Int32 来使用
    /// 微博的id 而 Int32位的最大值是没有微博id大的，所以会造成溢出
    var id: Int64 = 0
    /// 当前微博的内容
    var text: String?
    /// 微博的创建时间
    var created_at: String?
    /// 来源
    var source: String?
    /// 当前微博的用户信息
    var user: UserModel?
    /// 当前微博转发微博，因为其内部字段与 StarUserModel 一样，所以就设置其类型为 StarUserModel
    var retweeted_status: StarUserModel?
    /// 配图数组
    var pic_urls: [HMStatusPhontoInfo]?
    
    // 添加字典转模型的构造函数
    init(dict: [String: AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
    
    override func setValue(value: AnyObject?, forKey key: String) {
        if key == "user" {
            // 自已手动字典转模型？
            guard let dict = value as? [String: AnyObject] else{
                return
            }
            user = UserModel(dict: dict)
        }else if key == "retweeted_status" {
            // 手动转转发微博
            guard let dict = value as? [String: AnyObject] else {
                return
            }
            retweeted_status = StarUserModel(dict: dict)
        }else if key == "pic_urls" {
            // 自已手动字典转模型？         数据类型式字典数组字典（数组中存的字典）
            guard let dicts = value as? [[String: AnyObject]] else{
                return
            }
            var tempArray = [HMStatusPhontoInfo]()
            for dic in dicts {
                let info = HMStatusPhontoInfo(dict: dic)
                tempArray.append(info)
            }
            // 赋值给当前对象身上的 pic_urls 数组
            pic_urls = tempArray
        }else{
            super.setValue(value, forKey: key)
        }
    }
    
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
}
